package com.turing.data.constants;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.turing.data.model.excel.TaRedemptionExport;
import com.turing.data.model.excel.TaSubscribeExport;

/**
 * @Description 多表格导出常量类
 * @Author lcy
 * @Date 2021/7/13 15:43
 */
public class MoreTitleExcelConstant {

    /**
     * excel导出Class
     */
    public static final Map<String, List<Class<?>>> MORE_EXPORT_CLASS_MAP = new HashMap<>();

    /**
     * excel映射
     */
    public static final Map<String, List<Map<String, String>>> MORE_EXPORT_NAME_MAP = new HashMap<>();

    /**
     * 标题
     */
    public static final Map<String, List<String>> TITLE_MAP = new LinkedHashMap<>();

    /**
     * TA申购字段
     */
    public static final Map<String, String> TA_SUBSCRIBE_MAP = new HashMap<>();

    /**
     * TA赎回字段
     */
    public static final Map<String, String> TA_REDEMPTION_MAP = new HashMap<>();

    static {

        List<Class<?>> taClass = new ArrayList<>();
        taClass.add(TaSubscribeExport.class);
        taClass.add(TaRedemptionExport.class);
        //TA理财
        MORE_EXPORT_CLASS_MAP.put("50", taClass);

        //导出字段映射Map
        List<Map<String, String>> taMap = new ArrayList<>();
        taMap.add(TA_SUBSCRIBE_MAP);
        taMap.add(TA_REDEMPTION_MAP);
        //TA理财
        MORE_EXPORT_NAME_MAP.put("50", taMap);

        List<String> taTitles = new ArrayList<>();
        taTitles.add("申购");
        taTitles.add("赎回");
        TITLE_MAP.put("50", taTitles);

        //TA申购字段
        TA_SUBSCRIBE_MAP.put("产品名称", "productName");
        TA_SUBSCRIBE_MAP.put("基金代码", "fundCode");
        TA_SUBSCRIBE_MAP.put("销售日期", "saleDate");
        TA_SUBSCRIBE_MAP.put("确认日期", "confirmationDate");
        TA_SUBSCRIBE_MAP.put("申购份额", "subscriptionShare");
        TA_SUBSCRIBE_MAP.put("申购金额", "subscriptionAmount");
        TA_SUBSCRIBE_MAP.put("机构", "mechanism");
        TA_SUBSCRIBE_MAP.put("退出日期", "exitDate");

        //TA赎回字段
        TA_REDEMPTION_MAP.put("产品名称", "productName");
        TA_REDEMPTION_MAP.put("基金代码", "fundCode");
        TA_REDEMPTION_MAP.put("销售日期", "saleDate");
        TA_REDEMPTION_MAP.put("确认日期", "confirmationDate");
        TA_REDEMPTION_MAP.put("赎回份额", "redemptionShare");
        TA_REDEMPTION_MAP.put("赎回金额", "redemptionAmount");
        TA_REDEMPTION_MAP.put("机构赎回费", "institutionalRedemptionFee");
        TA_REDEMPTION_MAP.put("归基金赎回费", "fundRedemptionFee");
        TA_REDEMPTION_MAP.put("后端申购费", "backSubscriptionFee");
        TA_REDEMPTION_MAP.put("业绩提成金额", "performanceCommissionAmount");
        TA_REDEMPTION_MAP.put("赎回收益", "redemptionProceeds");
        TA_REDEMPTION_MAP.put("机构", "mechanism");
        TA_REDEMPTION_MAP.put("浮动投资顾问费", "investmentAdvisoryFee");

    }

}
